a11y: Simplify GtkTextViewAccessible
authorEmmanuele Bassi <ebassi@gnome.org>
Thu, 28 May 2020 14:46:42 +0000 (15:46 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Fri, 5 Jun 2020 19:35:10 +0000 (20:35 +0100)
Drop the GtkWidgetAccessible.notify_gtk override.

gtk/a11y/gtktextviewaccessible.c

index 109d56bc171e3c26c8aa47c9d8e36dd7b83f5bd7..9962c23607e346bd22a5b0a82f8bf5462fc20493 100644 (file)
@@ -68,31 +68,28 @@ G_DEFINE_TYPE_WITH_CODE (GtkTextViewAccessible, gtk_text_view_accessible, GTK_TY
 
 
 static void
-gtk_text_view_accessible_initialize (AtkObject *obj,
-                                     gpointer   data)
+on_editable_changed (GObject    *gobject,
+                     GParamSpec *pspec,
+                     AtkObject  *accessible)
 {
-  ATK_OBJECT_CLASS (gtk_text_view_accessible_parent_class)->initialize (obj, data);
+  GtkTextView *text_view = GTK_TEXT_VIEW (gobject);
 
-  obj->role = ATK_ROLE_TEXT;
+  atk_object_notify_state_change (accessible,
+                                  ATK_STATE_EDITABLE,
+                                  gtk_text_view_get_editable (text_view));
 }
 
 static void
-gtk_text_view_accessible_notify_gtk (GObject    *obj,
-                                     GParamSpec *pspec)
+gtk_text_view_accessible_initialize (AtkObject *obj,
+                                     gpointer   data)
 {
-  AtkObject *atk_obj;
-
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (obj));
+  ATK_OBJECT_CLASS (gtk_text_view_accessible_parent_class)->initialize (obj, data);
 
-  if (!strcmp (pspec->name, "editable"))
-    {
-      gboolean editable;
+  obj->role = ATK_ROLE_TEXT;
 
-      editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (obj));
-      atk_object_notify_state_change (atk_obj, ATK_STATE_EDITABLE, editable);
-    }
-  else
-    GTK_WIDGET_ACCESSIBLE_CLASS (gtk_text_view_accessible_parent_class)->notify_gtk (obj, pspec);
+  g_signal_connect (data, "notify::editable",
+                    G_CALLBACK (on_editable_changed),
+                    obj);
 }
 
 static AtkStateSet*
@@ -167,15 +164,12 @@ gtk_text_view_accessible_class_init (GtkTextViewAccessibleClass *klass)
 {
   AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
   GtkAccessibleClass *accessible_class = GTK_ACCESSIBLE_CLASS (klass);
-  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
 
   accessible_class->widget_set = gtk_text_view_accessible_widget_set;
   accessible_class->widget_unset = gtk_text_view_accessible_widget_unset;
 
   class->ref_state_set = gtk_text_view_accessible_ref_state_set;
   class->initialize = gtk_text_view_accessible_initialize;
-
-  widget_class->notify_gtk = gtk_text_view_accessible_notify_gtk;
 }
 
 static void